#ifndef _NOEUD_
#define _NOEUD_

#include <iostream>
#include <string>

#include "structure.hpp"
/* -- Définition de la structure Noeud --
 *
struct Noeud {
    string nom;

    Arc **arc_inc_ext;
    int nb_arc_ext;
    int capa_arc_ext;

    Arc **arc_inc_int;
    int nb_arc_int;
    int capa_arc_int;
 */

using namespace std;

void initNoeud(Noeud &n, const string & nom = "", bool verbose = false);

void initNoeud(Noeud &n, const Noeud &copie, bool verbose = false);

void copieNoeud(Noeud &n, const Noeud &copie, bool verbose = false);

int compNoeud(const Noeud &n1, const Noeud &n2, bool verbose = false);
/*  précondition : n1 et n2 initialisés
 *  postcondition : renvoie 0 si les 2 noeuds ont la même valeur, et != 0  sinon
 */

string valeurNoeud(const Noeud &n, bool verbose = false);
/* précondition : n initialisé
 * postcondition : renvoie le nom du noeud
 */

void ajoutArcExt(Noeud &n, Arc * arc_ext, bool verbose = false);

void ajoutArcInt(Noeud &n, Arc * arc_int, bool verbose = false);

void afficherNoeud(const Noeud &n, bool verbose = false);

void testamentNoeud(Noeud &n, bool verbose = false);
#endif // _NOEUD_

